package com.swanclouds.model.managers;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.swanclouds.model.ModelEntity;

/**
 * @author 李文强
 * description
 */

public class RestoreFactory implements ModelEntity {

    //是否保存SDR配置
    @JsonProperty("SDRStatus")
    private Boolean sdrStatus;

    //是否保存FRU配置
    @JsonProperty("FRUStatus")
    private Boolean fruStatus;

    //是否保存SEL配置
    @JsonProperty("SELStatus")
    private Boolean selStatus;

    //是否保存IPMI配置
    @JsonProperty("IPMIStatus")
    private Boolean ipmiStatus;

    //是否保存Network配置
    @JsonProperty("NetworkStatus")
    private Boolean networkStatus;

    //是否保存NTPS配置
    @JsonProperty("NTPStatus")
    private Boolean ntpStatus;

    //是否保存SNMP配置
    @JsonProperty("SNMPStatus")
    private Boolean snmpStatus;

    //是否保存SSH配置
    @JsonProperty("SSHStatus")
    private Boolean sshStatus;

    //是否保存KVM配置
    @JsonProperty("KVMStatus")
    private Boolean kvmStatus;

    //是否保存Authentication配置
    @JsonProperty("AuthenticationStatus")
    private Boolean authenticationStatus;

    //是否保存Syslog配置
    @JsonProperty("SyslogStatus")
    private Boolean syslogStatus;

    //是否保存WEB配置
    @JsonProperty("WebStatus")
    private Boolean webStatus;

    //是否保存Extlog配置
    @JsonProperty("ExtlogStatus")
    private Boolean extlogStatus;

    //是否保存Redfish置
    @JsonProperty("RedfishStatus")
    private Boolean redfishStatus;

    public Boolean getSdrStatus() {
        return sdrStatus;
    }

    public void setSdrStatus(Boolean sdrStatus) {
        this.sdrStatus = sdrStatus;
    }

    public Boolean getFruStatus() {
        return fruStatus;
    }

    public void setFruStatus(Boolean fruStatus) {
        this.fruStatus = fruStatus;
    }

    public Boolean getSelStatus() {
        return selStatus;
    }

    public void setSelStatus(Boolean selStatus) {
        this.selStatus = selStatus;
    }

    public Boolean getIpmiStatus() {
        return ipmiStatus;
    }

    public void setIpmiStatus(Boolean ipmiStatus) {
        this.ipmiStatus = ipmiStatus;
    }

    public Boolean getNetworkStatus() {
        return networkStatus;
    }

    public void setNetworkStatus(Boolean networkStatus) {
        this.networkStatus = networkStatus;
    }

    public Boolean getNtpStatus() {
        return ntpStatus;
    }

    public void setNtpStatus(Boolean ntpStatus) {
        this.ntpStatus = ntpStatus;
    }

    public Boolean getSnmpStatus() {
        return snmpStatus;
    }

    public void setSnmpStatus(Boolean snmpStatus) {
        this.snmpStatus = snmpStatus;
    }

    public Boolean getSshStatus() {
        return sshStatus;
    }

    public void setSshStatus(Boolean sshStatus) {
        this.sshStatus = sshStatus;
    }

    public Boolean getKvmStatus() {
        return kvmStatus;
    }

    public void setKvmStatus(Boolean kvmStatus) {
        this.kvmStatus = kvmStatus;
    }

    public Boolean getAuthenticationStatus() {
        return authenticationStatus;
    }

    public void setAuthenticationStatus(Boolean authenticationStatus) {
        authenticationStatus = authenticationStatus;
    }

    public Boolean getSyslogStatus() {
        return syslogStatus;
    }

    public void setSyslogStatus(Boolean syslogStatus) {
        this.syslogStatus = syslogStatus;
    }

    public Boolean getWebStatus() {
        return webStatus;
    }

    public void setWebStatus(Boolean webStatus) {
        this.webStatus = webStatus;
    }

    public Boolean getExtlogStatus() {
        return extlogStatus;
    }

    public void setExtlogStatus(Boolean extlogStatus) {
        this.extlogStatus = extlogStatus;
    }

    public Boolean getRedfishStatus() {
        return redfishStatus;
    }

    public void setRedfishStatus(Boolean redfishStatus) {
        this.redfishStatus = redfishStatus;
    }

    public static RestoreFactory builder(){
        return new RestoreFactory();
    }

    public RestoreFactory sdrStatus(Boolean sdrStatus){
        this.sdrStatus = sdrStatus;
        return this;
    }

    public RestoreFactory fruStatus(Boolean fruStatus){
        this.fruStatus = fruStatus;
        return this;
    }

    public RestoreFactory selStatus(Boolean selStatus){
        this.selStatus = selStatus;
        return this;
    }

    public RestoreFactory ipmiStatus(Boolean ipmiStatus){
        this.ipmiStatus = ipmiStatus;
        return this;
    }

    public RestoreFactory networkStatus(Boolean networkStatus){
        this.networkStatus = networkStatus;
        return this;
    }

    public RestoreFactory ntpStatus(Boolean ntpStatus){
        this.ntpStatus = ntpStatus;
        return this;
    }

    public RestoreFactory snmpStatus(Boolean snmpStatus){
        this.snmpStatus = snmpStatus;
        return this;
    }

    public RestoreFactory sshStatus(Boolean sshStatus){
        this.sshStatus = sshStatus;
        return this;
    }

    public RestoreFactory kvmStatus(Boolean kvmStatus){
        this.kvmStatus = kvmStatus;
        return this;
    }

    public RestoreFactory authenticationStatus(Boolean authenticationStatus){
        this.authenticationStatus = authenticationStatus;
        return this;
    }

    public RestoreFactory syslogStatus(Boolean syslogStatus){
        this.syslogStatus = syslogStatus;
        return this;
    }

    public RestoreFactory webStatus(Boolean webStatus){
        this.webStatus = webStatus;
        return this;
    }

    public RestoreFactory extlogStatus(Boolean extlogStatus){
        this.extlogStatus = extlogStatus;
        return this;
    }

    public RestoreFactory redfishStatus(Boolean redfishStatus){
        this.redfishStatus = redfishStatus;
        return this;
    }

    @Override
    public String toString() {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            return objectMapper.writeValueAsString(this);
        } catch (JsonProcessingException e) {
        }
        return "RestoreFactory{" +
                "sdrStatus=" + sdrStatus +
                ", fruStatus=" + fruStatus +
                ", selStatus=" + selStatus +
                ", ipmiStatus=" + ipmiStatus +
                ", networkStatus=" + networkStatus +
                ", ntpStatus=" + ntpStatus +
                ", snmpStatus=" + snmpStatus +
                ", sshStatus=" + sshStatus +
                ", kvmStatus=" + kvmStatus +
                ", authenticationStatus=" + authenticationStatus +
                ", syslogStatus=" + syslogStatus +
                ", webStatus=" + webStatus +
                ", extlogStatus=" + extlogStatus +
                ", redfishStatus=" + redfishStatus +
                '}';
    }
}
